home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / BBS-Archive / Dev / gcc263-src.lha / gcc-2.6.3 / config / i386 / winnt.h < prev    next >
C/C++ Source or Header  |  1994-09-30  |  2KB  |  80 lines

  1. /* Definitions of target machine for GNU compiler
  2.    for an Intel i386 or later processor running Windows NT 3.x.
  3.    Copyright (C) 1994 Free Software Foundation, Inc.
  4.    Contributed by Douglas B. Rupp (drupp@cs.washington.edu)
  5.  
  6. This file is part of GNU CC.
  7.  
  8. GNU CC is free software; you can redistribute it and/or modify
  9. it under the terms of the GNU General Public License as published by
  10. the Free Software Foundation; either version 2, or (at your option)
  11. any later version.
  12.  
  13. GNU CC is distributed in the hope that it will be useful,
  14. but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16. GNU General Public License for more details.
  17.  
  18. You should have received a copy of the GNU General Public License
  19. along with GNU CC; see the file COPYING.  If not, write to
  20. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  21.  
  22. #define YES_UNDERSCORES
  23.  
  24. #include "i386/gas.h"
  25. #include "winnt/winnt.h"
  26.  
  27. #undef CPP_PREDEFINES
  28. #define CPP_PREDEFINES "-Dunix -Di386 -DWINNT -D_M_IX86 -D_X86_ -D__STDC__=0 \
  29.   -DALMOST_STDC -Asystem(unix) -Asystem(winnt) -Acpu(i386) -Amachine(i386)"
  30.  
  31. #undef EXTRA_SECTIONS
  32. #define EXTRA_SECTIONS in_ctor, in_dtor
  33.  
  34. #undef EXTRA_SECTION_FUNCTIONS
  35. #define EXTRA_SECTION_FUNCTIONS                    \
  36.   CTOR_SECTION_FUNCTION                        \
  37.   DTOR_SECTION_FUNCTION
  38.  
  39. #undef CTOR_SECTION_FUNCTION
  40. #define CTOR_SECTION_FUNCTION                    \
  41. void                                \
  42. ctor_section ()                            \
  43. {                                \
  44.   if (in_section != in_ctor)                    \
  45.     {                                \
  46.       fprintf (asm_out_file, "\t.section .ctor\n");        \
  47.       in_section = in_ctor;                    \
  48.     }                                \
  49. }
  50.  
  51. #undef DTOR_SECTION_FUNCTION
  52. #define DTOR_SECTION_FUNCTION                    \
  53. void                                \
  54. dtor_section ()                            \
  55. {                                \
  56.   if (in_section != in_dtor)                    \
  57.     {                                \
  58.       fprintf (asm_out_file, "\t.section .dtor\n");        \
  59.       in_section = in_dtor;                    \
  60.     }                                \
  61. }
  62.  
  63. #undef ASM_OUTPUT_CONSTRUCTOR
  64. #define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME)    \
  65.   do {                        \
  66.     ctor_section ();                \
  67.     fprintf (FILE, "%s\t", ASM_LONG);        \
  68.     assemble_name (FILE, NAME);            \
  69.     fprintf (FILE, "\n");            \
  70.   } while (0)
  71.  
  72. #undef ASM_OUTPUT_DESTRUCTOR
  73. #define ASM_OUTPUT_DESTRUCTOR(FILE,NAME)           \
  74.   do {                        \
  75.     dtor_section ();                           \
  76.     fprintf (FILE, "%s\t", ASM_LONG);        \
  77.     assemble_name (FILE, NAME);                  \
  78.     fprintf (FILE, "\n");            \
  79.   } while (0)
  80.